package com.yunkeji.dao.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yunkeji.common.annotation.ExcelDictFormat;
import com.yunkeji.common.convert.ExcelDictConvert;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 支付-提现视图对象 ykj_pay_withdraw
 *
 * @author zhang
 * @date 2024-07-10
 */
@Data
@ExcelIgnoreUnannotated
public class PayWithdrawVo implements Serializable {

    /** 自增主键 */
    @TableId(value = "id")
    @ExcelIgnore
    private Long id;

    /** 爱洞id */
    @ExcelProperty(value = "爱洞ID")
    private Long platformId;

    /** 用户ID */
    @ExcelIgnore private Long userId;

    /** 提现数量 */
    @ExcelProperty(value = "应发金额")
    private BigDecimal cnyPrice;

    /** 消费钻石数量 */
    @ExcelProperty(value = "提线钻石")
    private BigDecimal diamondNum;

    /** 审核状态 */
    @ExcelProperty(value = "审核状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "app_check_status")
    private Integer checkStatus;

    /** 支付状态 */
    @ExcelProperty(value = "支付状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "app_pay_status")
    private Integer payStatus;

    /** 提现类型 1=支付宝 2=银行卡 */
    @ExcelProperty(value = "付款类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "withdraw_type")
    private Integer payType;

    /** 审核日期 */
    @ExcelProperty(value = "审核时间")
    @ColumnWidth(20)
    private Date checkTime;

    /** 提现账号 */
    @ExcelProperty(value = "提现账号")
    private String withdrawAccount;

    /** 提现账号用户姓名 */
    @ExcelProperty(value = "提现账号用户姓名")
    private String accountName;

    /** 费率 */
    @ExcelProperty(value = "提现账号用户姓名")
    private BigDecimal rate;

    /** 预计到账 */
    @ExcelProperty(value = "预计到账")
    private BigDecimal expectedNum;

    /** 提现手机号 */
    @ExcelIgnore private String phone;

    /** 提现日期(审核成功之后) */
    @ExcelProperty(value = "提现日期")
    private Integer withdrawDate;

    /** 三方交易号 */
    @ExcelProperty(value = "三方交易号")
    private String outerTradeNo;

    /** 交易结果 */
    @ExcelIgnore private String payResult;

    /** 创建者 */
    @ExcelIgnore private String createBy;

    /** 创建时间 */
    @ExcelIgnore private Date createTime;

    /** 更新时间 */
    @ExcelIgnore private Date updateTime;

    /** 更新者 */
    @ExcelIgnore private String updateBy;

    /** 备注 */
    @ExcelProperty(value = "备注")
    private String remark;

    /** 性别 **/
    private Integer sex;
    /** 状态 **/
    @TableField(exist = false)
    private Integer status;
}
